package com.smallcc.service;

import com.smallcc.dataobject.ProductInfo;
import com.smallcc.dto.CartDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

/**
 * @author 晓风过境
 * @商品信息service接口
 * @date 2018/3/28 20:57
 * @day 28
 * @return $text$
 * @title ${CLASS_NAME}
 * @project_name sell
 */
public interface ProductService {

    Optional<ProductInfo> findOne(String productId);

    /**
     * 查询上架的列表
     *
     * @return
     */
    List<ProductInfo> findUpAll();

    /**
     * 管理端查询
     */
    Page<ProductInfo> findAll(Pageable pageable);

    ProductInfo save(ProductInfo productInfo);

    /**
     * 加库存
     */
    void increaseStock(List<CartDTO> cartDTOList);

    /**
     * 减库存
     */
    void decreaseStock(List<CartDTO> cartDTOList);
    /**
     * 上架
     */
    ProductInfo onSale(String productId);
    /**
     * 下架
     */
    ProductInfo offSale(String productId);

}
